home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_13_04 / saks / array1.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1995-02-02  |  693 b   |  46 lines

  1. Listing 1 - A simple array class template
  2.  
  3. // array1.cpp
  4.  
  5. #include <stddef.h>
  6.  
  7. template <class T>
  8. class array
  9.     {
  10. public:
  11.     array(size_t n = 0);
  12.     array(const array &a);
  13.     ~array();
  14.     array &operator=(const array &a);
  15.     T &operator[](size_t i);
  16.     size_t length();
  17. private:
  18.     T *pa;
  19.     size_t len;
  20.     };
  21.  
  22. // ...
  23.  
  24. template <class T>
  25. T &array<T>::operator[](size_t i)
  26.     {
  27.     return pa[i];
  28.     }
  29.  
  30. template <class T>
  31. inline size_t array<T>::length()
  32.     {
  33.     return len;
  34.     }
  35.  
  36. ...
  37.  
  38. template <class T>
  39. T sigma(array<T> &a)
  40.     {
  41.     T sum = 0;
  42.     for (size_t i = 0; i < a.length(); ++i)
  43.         sum += a[i];
  44.     return sum;
  45.     }
  46.